﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using SanFranciscoModel.Docente;
using SanFranciscoModel.Utiles;
using SanFranciscoModel.Nacionalidad;
using SanFranciscoModel.Materia;
using SanFranciscoModel.Dias;
using SanFranciscoModel.Horarios;
using SanFranciscoModel.Curso;

namespace SanFrancisco
{
    public partial class ListarDocente : Form
    {
        int _DNI;
        public ListarDocente(int dni)
        {
            _DNI = dni;
            InitializeComponent();
        }

        private void ListarDocente_Load(object sender, EventArgs e)
        {
            DocenteManager DocenteManager = new DocenteManager();
            Docente Docente = new SanFranciscoModel.Docente.Docente();

            Docente = DocenteManager.getDocentebyDNI(_DNI);

            CargarSexo();
            CargarNacionalidades();

            txtDni.Text = Docente.DNIDocente.ToString();
            txtApellido.Text = Docente.Apellido;
            txtDireccion.Text = Docente.Direccion;
            txtNombre.Text = Docente.Nombre;
            txtTelefono.Text = Docente.Telefono.ToString();
            dpFechaNac.Value = Docente.FechaNacimiento;
            selSexo.SelectedValue = Docente.Sexo;
            cmbNacionalidad.SelectedValue = Docente.Nacionalidad;

            if (Docente.Suplente == false)
            {
                cmbtipoDocente.SelectedItem = "Titular";
            }
            else
            {
                cmbtipoDocente.SelectedItem = "Suplente";
            }

            CargarAsistencia();
            CargarMaterias();
            CargarDocentesImpartir();

            CargarDias();
            CargarHorarios();
        }

        private void CargarDias()
        {
            DiasManager DiasManager = new DiasManager();
            List<Dia> DiasList = DiasManager.GetAllDias();

        }

        private void CargarHorarios()
        {
            HorarioManager HorarioManager = new HorarioManager();
            List<Horario> ListHorario = HorarioManager.GetAllHorarios();

            foreach (Horario h in ListHorario)
            {
                    if (h.IdHora == 1)
                        d1.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 2)
                        d2.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 3)
                        d3.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 4)
                        d4.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 5)
                        d5.Text = ConvertirHora(h.Inicio.ToString());
                    if (h.IdHora == 6)
                        d6.Text = ConvertirHora(h.Inicio.ToString());
            }


            //armo todos los label y los distribuyo segun dia y horario de ListDocenteHorario

            DocenteManager DocenteManager = new DocenteManager();
            List<HorarioDocente> ListHorarioDocente = DocenteManager.getHorarioDocenteByIdDocente(_DNI);
            MateriaManager MateriaManager = new MateriaManager();


            foreach (HorarioDocente hd in ListHorarioDocente)
            {
                LinkLabel MyLabel = new System.Windows.Forms.LinkLabel();
                MyLabel.Location = new System.Drawing.Point(89 + ((hd.IdDia - 1) * 100), 70 + ((hd.IdHora - 1) * 48));
                MyLabel.Name = hd.IdMateria.ToString();
                MyLabel.Size = new System.Drawing.Size(88, 21);
                MyLabel.TabIndex = 0;
                MyLabel.Text = MateriaManager.getMateriasByIdMateria(hd.IdMateria).Materia1;
                MyLabel.ImageKey = hd.IdCurso.ToString();
                Calendario.Controls.Add(MyLabel);

                // Adding the Click event.
                MyLabel.Click += new EventHandler(MyLabel_Click);
            }
        }

        private void MyLabel_Click(object sender, System.EventArgs e)
        {
            LinkLabel a = new LinkLabel();
            a = (LinkLabel)sender;

            CursoManager cm = new CursoManager();
            SanFranciscoModel.Curso.Curso curso = cm.getCursoActualbyId(int.Parse(a.ImageKey));
            MessageBox.Show("Nombre del Curso: " + curso.NombreCurso);

        }

        private void cmbTurno_SelectedIndexChanged(object sender, EventArgs e)
        {

            CargarHorarios();
        }

        public string ConvertirHora(string h)
        {
            string hora = string.Empty;

            if (h.Count() == 3)
            {
                int flag = 0;
                hora += "0";
                foreach (char c in h)
                {
                    if (flag == 1)
                    {
                        hora += ":";
                    }
                    hora += c;
                    flag++;
                }
            }
            else
            {
                if (h.Count() == 4)
                {
                    int flag = 0;
                    foreach (char c in h)
                    {
                        if (flag == 2)
                        {
                            hora += ":";
                        }
                        hora += c;
                        flag++;
                    }
                }
            }
            return hora;
        }

        private void btnGuardar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void CargarAsistencia()
        {
            DocenteDataContext D = new DocenteDataContext();
            gridAsistencia.DataSource = D.DocenteAsistencias(_DNI);
        }

        private void CargarMaterias()
        {
            DocenteDataContext D = new DocenteDataContext();
            gridMaterias.DataSource = D.DocenteMaterias(_DNI);
        }

        private void CargarNacionalidades()
        {
            NacionalidadManager NacionalidadManager = new NacionalidadManager();
            cmbNacionalidad.ValueMember = "idPais";
            cmbNacionalidad.DisplayMember = "Pais";
            cmbNacionalidad.DataSource = NacionalidadManager.getNacionalidadAll();
            cmbNacionalidad.SelectedValue = 8;

        }

        private void CargarSexo()
        {
            UtilesManager Sexo = new UtilesManager();
            selSexo.DisplayMember = "Sexo1";
            selSexo.ValueMember = "idSexo";
            selSexo.DataSource = Sexo.getSexoAll();

        }

        private void CargarDocentesImpartir()
        {
            DocenteDataContext d = new DocenteDataContext();
            gridImpartir.DataSource = d.DocenteMateriasImpartir(_DNI);
        }
    }
}
